using System;
using System.Configuration;
using System.Data;
using System.IO;
using System.Web;
using System.Web.UI.HtmlControls;
using Anthem;
using App_Code;
using Microsoft.ApplicationBlocks.ExceptionManagement;
using MinCultura.Sinic.Basicas;
using Common;

using MinCultura.Sipa.EntidadesArtes;
using MinCultura.Sipa.DataAccess.EntidadesArtes;
using UsrControls;
 
public delegate void VerInfraestructuraEntidad();

namespace web.Controls
{
	/// <summary>
	/// Summary description for AgentesBasicos.
	/// </summary>
	public class DetalleEntidad : SinicUserControl
	{
		protected Anthem.Label lblNombreEntidad;
		protected Anthem.Label lblPais;
		protected Anthem.Label lblDepartamento;
		protected Anthem.Label lblMunicipio;
		protected Anthem.Label lblTelefono;
		protected Anthem.Label lblFax;
		protected Anthem.Label lblCorreoElectronico;
		protected Anthem.Label lblPaginaWeb;
		protected Anthem.Label lblNombreContacto;
		protected Anthem.Label lblCargoContacto;
		protected Anthem.Label lblAreaArtistica;
		protected Anthem.Label lblTipoEntidad;
		protected Anthem.Label lblClaseEntidad;
		protected Anthem.Label lblPerteneceRed;
		protected Anthem.Label lblNombreRed;
		protected Anthem.Label lblInfraesDiscapacitados;
		protected Anthem.Label lblEspaciosActividades;
		protected Anthem.LinkButton lnkInfraestructura;
		protected Anthem.Label lblAreasArtisticasImparte;
		protected Anthem.Label lblCaracterAccesoPublico;
		protected Anthem.Label lblGruposEdadEnfocan;
		protected Anthem.Label lblAnioConstitucion;
		protected Anthem.Label lblResena;
		protected Anthem.Label lblOrganizaProgramas;
		private string nombreEntidad;
		public string NombreEntidad 
		{
			set{ nombreEntidad = value;}
			get{
				if(nombreEntidad != null)
					return nombreEntidad;
				else
					return "";
			}
		}

		public event VerInfraestructuraEntidad VerInfraestructuraEntidadEvent;
		private const string m_strRutaArchivos = @"Sipa_Entidades_Artes\archivos\";

		#region - Eventos

		private void Page_Load(object sender, EventArgs e)
		{
			lnkInfraestructura.Visible = false;
			if (!IsPostBack)
			{
				Manager.Register(this);
			}
		}

		#endregion 

		#region - Metodos 		

		public void CargarDatosEntidad(decimal idEntidad)
		{
			//Identificacion
            MinCultura.Sipa.EntidadesArtes.EntidadesArtes entidadesArtes = new MinCultura.Sipa.EntidadesArtes.EntidadesArtes(ConfigurationManager.AppSettings["Conn"]); 
			EntidadesArtesData entidadesArtesData = entidadesArtes.ConsultarEntidadesArtes(idEntidad);
			if (entidadesArtesData != null)
			{
				NombreEntidad = lblNombreEntidad.Text = entidadesArtesData.Rows[0][EntidadesArtesData.ENT_NOMBRE_FIELD].ToString();
				lblNombreContacto.Text = entidadesArtesData.Rows[0][EntidadesArtesData.ENT_NOMBRE_CONTACTO_FIELD].ToString();
				lblCargoContacto.Text = entidadesArtesData.Rows[0][EntidadesArtesData.ENT_CARGO_CONTACTO_FIELD].ToString();
				lblAnioConstitucion.Text = entidadesArtesData.Rows[0][EntidadesArtesData.ENT_ANO_CONSTITUCION_FIELD].ToString();
				lblResena.Text = entidadesArtesData.Rows[0][EntidadesArtesData.ENT_RESENA_FIELD].ToString();
			}

			//Ubicacion
            EntidadUbicacion entidadUbicacion = new EntidadUbicacion(ConfigurationManager.AppSettings["Conn"]);
			EntidadUbicacionData entidadUbicacionData = entidadUbicacion.ConsultarEntidadUbicacion(idEntidad);
			if (entidadUbicacionData != null)
			{
				lblPais.Text = entidadUbicacionData.Rows[0]["ZOP_NOMBRE"].ToString();
				lblDepartamento.Text = entidadUbicacionData.Rows[0]["DEPARTAMENTO"].ToString();
				lblMunicipio.Text = entidadUbicacionData.Rows[0]["MUNICIPIO"].ToString();
				lblTelefono.Text = entidadUbicacionData.Rows[0][EntidadUbicacionData.ENT_TELEFONO_FIELD].ToString();
				lblFax.Text = entidadUbicacionData.Rows[0][EntidadUbicacionData.ENT_FAX_FIELD].ToString();
				lblCorreoElectronico.Text = entidadUbicacionData.Rows[0][EntidadUbicacionData.ENT_CORREO_ELECTRONICO_ENTIDAD_FIELD].ToString();
				if (entidadUbicacionData.Rows[0][EntidadUbicacionData.ENT_PAGINA_WEB_FIELD]!=DBNull.Value)
				{
					lblPaginaWeb.Text = entidadUbicacionData.Rows[0][EntidadUbicacionData.ENT_PAGINA_WEB_FIELD].ToString();
					lblPaginaWeb.Text = lblPaginaWeb.Text.Replace("|",", ");
				}
			}

			//Aspecto Juridico
            EntidadNaturalezaJuridica entidadNaturalezaJuridica = new EntidadNaturalezaJuridica(ConfigurationManager.AppSettings["Conn"]);
			EntidadNaturalezaJuridicaData entidadNaturalezaJuridicaData = entidadNaturalezaJuridica.ConsultarEntidadNaturalezaJuridica(idEntidad);
			if (entidadNaturalezaJuridicaData != null)
			{
				if (entidadNaturalezaJuridicaData.Rows[0][EntidadNaturalezaJuridicaData.ENT_SINO_ENTIDAD_DEPENDE_RED_FIELD] != DBNull.Value)
				{
					if (entidadNaturalezaJuridicaData.Rows[0][EntidadNaturalezaJuridicaData.ENT_SINO_ENTIDAD_DEPENDE_RED_FIELD].ToString() == Utilidad.SI)
					{
						lblPerteneceRed.Text = "Si";
					}
					else
					{
						lblPerteneceRed.Text = "No";
					}
				}
				lblNombreRed.Text = entidadNaturalezaJuridicaData.Rows[0][EntidadNaturalezaJuridicaData.ENT_NOMBRE_ENTIDAD_DEPENDE_RED_FIELD].ToString();
			}

			//Infraestructura 
            EntidadInfraestructura entidadInfraestructura = new EntidadInfraestructura(ConfigurationManager.AppSettings["Conn"]);
			EntidadInfraestructuraData entidadInfraestructuraData = entidadInfraestructura.ConsultarEntidadInfraestructura(idEntidad);
			if (entidadInfraestructuraData != null)
			{
				if (entidadInfraestructuraData.Rows[0][EntidadInfraestructuraData.ENT_SINO_INFRAESTRUCTURA_DISCAPACITADOS_FIELD] != DBNull.Value) 
				{
					string infraesDiscapacitados = entidadInfraestructuraData.Rows[0][EntidadInfraestructuraData.ENT_SINO_INFRAESTRUCTURA_DISCAPACITADOS_FIELD].ToString();
					if(infraesDiscapacitados == Utilidad.NO || infraesDiscapacitados.Trim().Length == 0)
						lblInfraesDiscapacitados.Text = "No";
					else
						lblInfraesDiscapacitados.Text = "Si";
				}
				else
				{
					lblInfraesDiscapacitados.Text = "No";
				}

                EspaciosEntidad objControlEspacios = new EspaciosEntidad(ConfigurationManager.AppSettings["Conn"]);
				EspaciosEntidadData objDataEspaciosEntidad = objControlEspacios.ConsultarEspaciosEntidad(idEntidad);
				if (objDataEspaciosEntidad != null && objDataEspaciosEntidad.Rows.Count > 0)
				{
					string nombreEspacio = string.Empty;
					lblEspaciosActividades.Text = string.Empty;
					for (int i = 0;i < objDataEspaciosEntidad.Rows.Count;i++)
					{
						nombreEspacio = objDataEspaciosEntidad.Rows[i]["ESP_NOMBRE"].ToString();
						if (i < objDataEspaciosEntidad.Rows.Count - 1)
							lblEspaciosActividades.Text +=  nombreEspacio + ", ";
						else
							lblEspaciosActividades.Text += nombreEspacio;

						if (nombreEspacio.ToLower().IndexOf("auditorio") != -1 || nombreEspacio.ToLower().IndexOf("teatro") != -1)
						{
							lnkInfraestructura.Visible = true;
						}
					}					
				}
			}

			//Actividad 
            EntidadActividad entidadActividad = new EntidadActividad(ConfigurationManager.AppSettings["Conn"]);
			EntidadActividadData entidadActividadData = entidadActividad.ConsultarEntidadActividad(idEntidad);
			if (entidadActividadData != null)
			{
				lblAreaArtistica.Text = entidadActividadData.Rows[0]["ARD_AREA_ARTISTICA"].ToString();
				lblTipoEntidad.Text = entidadActividadData.Rows[0]["TEA_DESCRIPCION"].ToString();
				lblClaseEntidad.Text = entidadActividadData.Rows[0]["ACE_NOMBRE"].ToString();
				if (entidadActividadData.Rows[0][EntidadActividadData.ENT_SINO_NOADULTOS_FIELD] != DBNull.Value)
				{
					if (entidadActividadData.Rows[0][EntidadActividadData.ENT_SINO_NOADULTOS_FIELD].ToString() == Utilidad.SI)
					{
						lblOrganizaProgramas.Text = "Si";
					}
					else
					{
						lblOrganizaProgramas.Text = "No";
					}
				}

                AccesoEntidad objControlAcceso = new AccesoEntidad(ConfigurationManager.AppSettings["Conn"]);
				AccesoEntidadData objDataAccesoEntidad = objControlAcceso.ConsultarAccesoEntidad(idEntidad);
				if (objDataAccesoEntidad!= null && objDataAccesoEntidad.Rows.Count > 0)
				{
					lblCaracterAccesoPublico.Text = string.Empty;
					for (int i = 0;i < objDataAccesoEntidad.Rows.Count;i++)
					{
						if (i < objDataAccesoEntidad.Rows.Count - 1)
							lblCaracterAccesoPublico.Text += objDataAccesoEntidad.Rows[i]["ACP_NOMBRE"].ToString() + ", ";
						else
							lblCaracterAccesoPublico.Text += objDataAccesoEntidad.Rows[i]["ACP_NOMBRE"].ToString();
					}
				}

                GrupoEdadEntidad objControlGrupoEdadEntidad = new GrupoEdadEntidad(ConfigurationManager.AppSettings["Conn"]);
				GrupoEdadEntidadData objDataGrupoEdadEntidad = objControlGrupoEdadEntidad.ConsultarGrupoEdadEntidad(idEntidad);				
				if (objDataGrupoEdadEntidad != null)
				{
					for (int i = 0;i < objDataGrupoEdadEntidad.Rows.Count;i++)
					{
						if (i < objDataGrupoEdadEntidad.Rows.Count - 1)
							lblGruposEdadEnfocan.Text += objDataGrupoEdadEntidad.Rows[i]["GPE_NOMBRE"].ToString() + ", ";
						else
							lblGruposEdadEnfocan.Text += objDataGrupoEdadEntidad.Rows[i]["GPE_NOMBRE"].ToString();
						
					}
				}

			}
		
			//Formacion
            EntidadFormacion entidadFormacion = new EntidadFormacion(ConfigurationManager.AppSettings["Conn"]);
			EntidadFormacionData entidadFormacionData = entidadFormacion.ConsultarEntidadFormacion(idEntidad);
			if (entidadFormacionData != null && entidadFormacionData.Rows.Count > 0)
			{
                AreasArtisticasFormacionEntidad objControlAreasArtisticas = new AreasArtisticasFormacionEntidad(ConfigurationManager.AppSettings["Conn"]);
				AreasArtisticasFormacionEntidadData objDataAreas = objControlAreasArtisticas.ConsultarAreasArtisticasFormacionEntidad(idEntidad);							
				lblAreasArtisticasImparte.Text = string.Empty;
				if (objDataAreas!=null && objDataAreas.Rows.Count > 0)
				{
					for (int i = 0;i < objDataAreas.Rows.Count;i++)
					{
						if (i < objDataAreas.Rows.Count - 1)
							lblAreasArtisticasImparte.Text += objDataAreas.Rows[i]["ART_NOMBRE"].ToString() + ", ";
						else
							lblAreasArtisticasImparte.Text += objDataAreas.Rows[i]["ART_NOMBRE"].ToString();
					}
				}
			}
		}
		#endregion 

		#region - Propiedades

		#endregion 

		#region Web Form Designer generated code

		protected override void OnInit(EventArgs e)
		{
			InitializeComponent();
			base.OnInit(e);
		}

		private void InitializeComponent()
		{
			this.lnkInfraestructura.Click += new System.EventHandler(this.lnkInfraestructura_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}

		#endregion

		private void lnkInfraestructura_Click(object sender, System.EventArgs e)
		{
			VerInfraestructuraEntidadEvent();
		}
	}
}